Conventional electronic devices, such as Personal Computers (PCs), Personal Digital Assistants (PDAs) and other electronic devices, have the capability of performing multiple functions. These multiple functions can include signal processing, digital filtering, or running multiple application programs to provide video, audio, or other data output. However, conventional electronic devices have severe limitations in operating and instantiating functionality in the system architecture. Consequently, a need arises for a method and apparatus to overcome the limitations of the conventional methods used in the conventional electronic devices.
Referring to prior art FIG. 1, a block diagram of a conventional expansion card adding functionality to a conventional personal computer is shown. Diagram 100 shows a functional expansion card 104 providing a predetermined and static function 106 as input to the PC 102. For example, expansion card 104 can be a Sound Blaster™ card that adds functionality to a PC sound system with digital filtering, digital sound effects, etc.
The sound card typically provides a combination of hardware and software to accomplish new functions, e.g., stereo sound with echo effect, that complement or replace functions available on the host computer. Unfortunately, a sound card may not operate on every system. Thus for example, a conventional PC may have existing functions, e.g., in hardware and software, that do not provide the appropriate data to the new expansion card. Similarly, the conventional PC may not have suitable functions to accept the data provided by the sound card. This is why a conventional expansion card is typically programmed for, and listed as operating on, only predetermined systems with rigidly defined functions. If the system accepting the expansion card has a minor deviation from the aforementioned functional requirements, then the expansion card may result in system conflicts and ultimately, the inability to operate the computer system. With these rigid and inflexible paradigms, conventional methods and apparatus for expanding the functionality of a computer can be a frustrating and counterproductive experience. Thus a need arises for a method of accommodating changes in functionality to a computer system that overcome the limitations of the predetermined system requirements and the failure modes associated with conventional functional expansion cards.
Besides the limitations of predetermined systems and potential conflicts, a conventional expansion card also has installation limitations. That is, a conventional expansion card is not suitable for dynamic installation and operation in the PC or for dynamically removal from, and continued operation of, the PC. In particular, the expansion card cannot be installed and uninstalled “hot”, e.g., while the PC is operating. Rather, the PC is typically shut down, the card installed, the software installed for the appropriate drivers and instructions, the PC rebooted, and only then the expansion card is operable. Naturally, this conventional methodology is inconvenient in terms of time and effort. Consequently, a need arises for an apparatus and method that overcomes the installation limitations of the conventional expansion card.